/*
 * Copyright (c) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import Logger, { LOG_MODULE_TYPE } from 'arkanalyzer/lib/utils/logger';
import { adapter } from "../../adapter/Adapter";
import { ArrayDefinitionCheck } from '../../checker/performance/ArrayDefinitionCheck';
import { AvoidEmptyCallbackCheck } from '../../checker/performance/AvoidEmptyCallbackCheck';
import {
    AvoidUpdateAutoStateVarAboutToReuseCheck
} from '../../checker/performance/AvoidUpdateAutoStateVarAboutToReuseCheck';
import {
    ConstantPropertyReferencingInLoopsCheck
} from '../../checker/performance/ConstantPropertyReferencingInLoopsCheck';
import { EffectkitBlurCheck } from '../../checker/performance/EffectkitBlurCheck';
import { ForeachArgsCheck } from '../../checker/performance/ForEachArgsCheck';
import { ForeachIndexCheck } from '../../checker/performance/ForeachIndexCheck';
import { LottieAnimationDestoryCheck } from '../../checker/performance/LottieAnimationDestoryCheck';
import { HighFrequencyLogCheck } from '../../checker/performance/HighFrequencyLogCheck';
import { LayoutPropertiesScaleCheck } from '../../checker/performance/LayoutPropertiesScaleCheck';
import { RemoveRedundantStateVarCheck } from '../../checker/performance/RemoveRedundantStateVarCheck';
import { TimezoneInterfaceCheck } from '../../checker/performance/TimezoneInterfaceCheck';
import { TypedArrayCheck } from '../../checker/performance/TypedArrayCheck';
import { UseObjectLinkToReplacePropCheck } from '../../checker/performance/UseObjectLinkToReplacePropCheck';
import { WebCacheModeCheck } from '../../checker/performance/WebCacheModeCheck';
import { SparseArrayCheck } from '../../checker/performance/SparseArrayCheck';
import { WaterFlowUpdateDataCheck } from '../../checker/performance/WaterFlowUpdateDataCheck';
import { UnionTypeArrayCheck } from '../../checker/performance/UnionTypeArrayCheck';
import { OptionalParametersCheck } from '../../checker/performance/OptionalParametersCheck';
import { UseGridLayoutOptionsCheck } from '../../checker/performance/UseGridLayoutOptionsCheck';
import { RemoveUnchangedStateVarCheck } from '../../checker/performance/RemoveUnchangedStateVarCheck';
import { JsCodeCacheByPrecompileCheck } from '../../checker/performance/JsCodeCacheByPrecompileCheck';
import { JsCodeCacheByInterceptionCheck } from '../../checker/performance/JsCodeCacheByInterceptionCheck';
import { ImageInterpolationCheck } from '../../checker/correctness/ImageInterpolationCheck';
import { AudioInterruptCheck } from '../../checker/correctness/AudioInterruptCheck';
import { AudioPauseOrMuteCheck } from '../../checker/correctness/AudioPauseOrMuteCheck';
import { AvsessionButtonsCheck } from '../../checker/correctness/AvsessionButtonsCheck';
import { AvsessionMetadataCheck } from '../../checker/correctness/AvsessionMetadataCheck';
import { ImagePixelFormatCheck } from '../../checker/correctness/ImagePixelFormatCheck';
import { ImageSyncLoadCheck } from '../../checker/performance/ImageSyncLoadCheck';
import { ListInitCheck } from '../../checker/performance/ListInitCheck';
import { MultipleAssociationsStateVarCheck } from '../../checker/performance/MultipleAssociationsStateVarCheck';
import { NumberInitCheck } from '../../checker/performance/NumberInitCheck';
import { SetCachedCountForLazyforeachCheck } from '../../checker/performance/SetCachedCountForLazyforeachCheck';
import { StartWindowIconCheck } from '../../checker/performance/StartWindowIconCheck';
import { SymbolUsageCheck } from '../../checker/security/SymbolUsageCheck';
import { WebOnActiveCheck } from '../../checker/performance/WebOnActiveCheck';
import { GifHardwareDecodingCheck } from '../../checker/performance/GifHardwareDecodingCheck';
import { ModuleTopLevelCodeCheck } from '../../checker/performance/ModuleTopLevelCodeCheck';
import { NoFloatingPromisesCheck } from '../../checker/ArkTS-eslint/NoFloatingPromisesCheck';
import { BadLottieOpacityCheck } from '../../checker/performance/BadLottieOpacityCheck';
import { ForeachNestedInLazyForeachCheck } from '../../checker/performance/ForeachNestedInLazyForeachCheck';
import { ComponentCountCheck } from '../../checker/performance/ComponentCountCheck';
import { ComponentTreeLayersCheck } from '../../checker/performance/ComponentTreeLayersCheck';
import { ComponentDegreeCheck } from '../../checker/performance/ComponentDegreeCheck';
import { ComponentAttributesCheck } from '../../checker/performance/ComponentAttributesCheck';
import { TabsOnChangeCheck } from '../../checker/performance/TabsOnChangeCheck';


// @ArkTS-eslint
import { InitDeclarationsCheck } from '../../checker/ArkTS-eslint/InitDeclarationsCheck';
import { DefaultParamLastCheck } from '../../checker/ArkTS-eslint/DefaultParamLastCheck';
import { ExplicitFunctionReturnTypeCheck } from '../../checker/ArkTS-eslint/ExplicitFunctionReturnTypeCheck';
import { ExplicitModuleBoundaryTypesCheck } from '../../checker/ArkTS-eslint/ExplicitModuleBoundaryTypesCheck';
import { NoDupeClassMembersCheck } from '../../checker/ArkTS-eslint/NoDupeClassMembersCheck';
import { BanTsCommentCheck } from '../../checker/ArkTS-eslint/BanTsCommentCheck';
import { MemberOrderingCheck } from '../../checker/ArkTS-eslint/MemberOrderingCheck';
import { NoUnnecessaryConditionCheck } from '../../checker/ArkTS-eslint/NoUnnecessaryConditionCheck';
import { NoUnnecessaryQualifierCheck } from '../../checker/ArkTS-eslint/NoUnnecessaryQualifierCheck';
import { NoUnnecessaryTypeArgumentsCheck } from '../../checker/ArkTS-eslint/NoUnnecessaryTypeArgumentsCheck';
import { NoUnnecessaryTypeAssertionCheck } from '../../checker/ArkTS-eslint/NoUnnecessaryTypeAssertionCheck';
import { ValidTypeofCheck } from '../../checker/ArkTS-eslint/ValidTypeofCheck';
import { ArrayTypeCheck } from '../../checker/ArkTS-eslint/ArrayTypeCheck';
import { NoUselessBackreferenceCheck } from '../../checker/ArkTS-eslint/NoUselessBackreferenceCheck';
import { BanTSLintCommentCheck } from '../../checker/ArkTS-eslint/BanTSLintCommentCheck';
import { BanTypesCheck } from '../../checker/ArkTS-eslint/BanTypesCheck';
import { BraceStyleCheck } from '../../checker/ArkTS-eslint/BraceStyleCheck';
import { NoUnsafeOptionalChainingCheck } from '../../checker/ArkTS-eslint/NoUnsafeOptionalChainingCheck';
import { NoUselessEscapeCheck } from '../../checker/ArkTS-eslint/NoUselessEscapeCheck';
import { NoThisAliasCheck } from '../../checker/ArkTS-eslint/NoThisAliasCheck';
import { NoNonNullAssertionCheck } from '../../checker/ArkTS-eslint/NoNonNullAssertionCheck';
import { NoMisusedNewCheck } from '../../checker/ArkTS-eslint/NoMisusedNewCheck';
import { NoRequireImportsCheck } from '../../checker/ArkTS-eslint/NoRequireImportsCheck';
import { NoParameterPropertiesCheck } from '../../checker/ArkTS-eslint/NoParameterPropertiesCheck';
import { NoRedeclareCheck } from '../../checker/ArkTS-eslint/NoRedeclareCheck';
import { NoShadowCheck } from '../../checker/ArkTS-eslint/NoShadowCheck';
import { NoNonNullAssertedOptionalChainCheck } from '../../checker/ArkTS-eslint/NoNonNullAssertedOptionalChainCheck';
import { ConsistentTypeAssertionsCheck } from '../../checker/ArkTS-eslint/ConsistentTypeAssertionsCheck';
import { ConsistentTypeDefinitionsCheck } from '../../checker/ArkTS-eslint/ConsistentTypeDefinitionsCheck';
import { ConsistentTypeImportsCheck } from '../../checker/ArkTS-eslint/ConsistentTypeImportsCheck';
import { ConsistentIndexedObjectStyleCheck } from '../../checker/ArkTS-eslint/ConsistentIndexedObjectStyleCheck';
import { NoUselessCatchCheck } from '../../checker/ArkTS-eslint/NoUselessCatchCheck';
import { NoNewWrappersCheck } from '../../checker/ArkTS-eslint/NoNewWrappersCheck';
import { NoCondAssignCheck } from '../../checker/ArkTS-eslint/NoCondAssignCheck';
import { MaxLinesPerFunctionCheck } from '../../checker/ArkTS-eslint/MaxLinesPerFunctionCheck';
import { NoDuplicateImportsCheck } from '../../checker/ArkTS-eslint/NoDuplicateImportsCheck';
import { NoForInArrayCheck } from '../../checker/ArkTS-eslint/NoForInArrayCheck';

import { NoLoopFuncCheck } from '../../checker/ArkTS-eslint/NoLoopFuncCheck';
import { NoLossOfPrecisionCheck } from '../../checker/ArkTS-eslint/NoLossOfPrecisionCheck';
import { NoExtraneousClassCheck } from '../../checker/ArkTS-eslint/NoExtraneousClassCheck';
import { NoArrayConstructorCheck } from '../../checker/ArkTS-eslint/NoArrayConstructorCheck';
import { NoCaseDeclarationsCheck } from '../../checker/ArkTS-eslint/NoCaseDeclarationsCheck';
import { NoUnsafeAssignmentCheck } from '../../checker/ArkTS-eslint/NoUnsafeAssignmentCheck';
import { MaxLinesCheck } from '../../checker/ArkTS-eslint/MaxLinesCheck';
import { DefaultCaseCheck } from '../../checker/ArkTS-eslint/DefaultCaseCheck';
import { DefaultCaseLastCheck } from '../../checker/ArkTS-eslint/DefaultCaseLastCheck';
import { UseIsNaNCheck } from '../../checker/ArkTS-eslint/UseIsNaNCheck';
import { TypedefCheck } from '../../checker/ArkTS-eslint/TypedefCheck';
import { NoNameSpaceCheck } from '../../checker/ArkTS-eslint/NoNameSpaceCheck';
import { MaxDepthCheck } from '../../checker/ArkTS-eslint/MaxDepthCheck';
import { MaxClassesPerFileCheck } from '../../checker/ArkTS-eslint/MaxClassesPerFileCheck';
import { MaxNestedCallbacksCheck } from '../../checker/ArkTS-eslint/MaxNestedCallbacksCheck';
import { NoAsyncPromiseExecutorCheck } from '../../checker/ArkTS-eslint/NoAsyncPromiseExecutorCheck';
import { NoUnsafeCallCheck } from '../../checker/ArkTS-eslint/NoUnsafeCallCheck';
import { NoUnnecessaryTypeConstraintCheck } from '../../checker/ArkTS-eslint/NoUnnecessaryTypeConstraintCheck';
import { NoUnsafeArgumentCheck } from '../../checker/ArkTS-eslint/NoUnsafeArgumentCheck';
import { NoControlRegexCheck } from '../../checker/ArkTS-eslint/NoControlRegexCheck';
import { NoEmptyCharacterClassCheck } from '../../checker/ArkTS-eslint/NoEmptyCharacterClassCheck';
import { NoInvalidRegexpCheck } from '../../checker/ArkTS-eslint/NoInvalidRegexpCheck';
import { NoExAssignCheck } from '../../checker/ArkTS-eslint/NoExAssignCheck';
import { NoOctalCheck } from '../../checker/ArkTS-eslint/NoOctalCheck';
import { RequireAwaitCheck } from '../../checker/ArkTS-eslint/RequireAwaitCheck';
import { SwitchExhaustivenessCheck } from '../../checker/ArkTS-eslint/SwitchExhaustivenessCheck';
import { UnifiedSignaturesCheck } from '../../checker/ArkTS-eslint/UnifiedSignaturesCheck';
import { NoUnexpectedMultilineCheck } from '../../checker/ArkTS-eslint/NoUnexpectedMultilineCheck';
import { NoUnreachableCheck } from '../../checker/ArkTS-eslint/NoUnreachableCheck';
import { NoInferrableTypesCheck } from '../../checker/ArkTS-eslint/NoInferrableTypesCheck';
import { SpaceInfixOpsCheck } from '../../checker/ArkTS-eslint/SpaceInfixOpsCheck';
import { SpaceBeforeFunctionParenCheck } from '../../checker/ArkTS-eslint/SpaceBeforeFunctionParenCheck';
import { NoRestrictedSyntaxCheck } from '../../checker/ArkTS-eslint/NoRestrictedSyntaxCheck';
import { AdjacentOverloadSignaturesCheck } from '../../checker/ArkTS-eslint/AdjacentOverloadSignaturesCheck';
import { ClassLiteralPropertyStyleCheck } from '../../checker/ArkTS-eslint/ClassLiteralPropertyStyleCheck';
import { NoEmptyFunctionCheck } from '../../checker/ArkTS-eslint/NoEmptyFunctionCheck';
import { PreferForOfCheck } from '../../checker/ArkTS-eslint/PreferForOfCheck';
import { NoConfusingNonNullAssertionCheck } from '../../checker/ArkTS-eslint/NoConfusingNonNullAssertionCheck';
import { NoMagicNumbersCheck } from '../../checker/ArkTS-eslint/NoMagicNumbersCheck';
import { AwaitThenableCheck } from '../../checker/ArkTS-eslint/AwaitThenableCheck';
import { NoUselessConstructorCheck } from '../../checker/ArkTS-eslint/NoUselessConstructorCheck';
import { PreferEnumInitializwersCheck } from '../../checker/ArkTS-eslint/PreferEnumInitializwersCheck';
import { PreferLiteralEnumMemberCheck } from '../../checker/ArkTS-eslint/PreferLiteralEnumMemberCheck';
import { PreferReadonlyParametertypesCheck } from '../../checker/ArkTS-eslint/PreferReadonlyParametertypesCheck';
import { RequireArraySortCompareCheck } from '../../checker/ArkTS-eslint/RequireArraySortCompareCheck';
import { NoUnusedVarsCheck } from '../../checker/ArkTS-eslint/NoUnusedVarsCheck';
import { NoInvalidVoidTypeCheck } from '../../checker/ArkTS-eslint/NoInvalidVoidTypeCheck';
import { NoInvalidThisCheck } from '../../checker/ArkTS-eslint/NoInvalidThisCheck';
import { NoFallthroughCheck } from '../../checker/ArkTS-eslint/NoFallthroughCheck';
import { NoBaseToStringCheck } from '../../checker/ArkTS-eslint/NoBaseToStringCheck';
import { NoExplicitAnyCheck } from '../../checker/ArkTS-eslint/NoExplicitAnyCheck';
import { NamingConventionCheck } from '../../checker/ArkTS-eslint/NamingConventionCheck';
import { NoUnusedExpressionsCheck } from '../../checker/ArkTS-eslint/NoUnusedExpressionsCheck';
import { NoUnsafeMemberAccessCheck } from '../../checker/ArkTS-eslint/NoUnsafeMemberAccessCheck';
import { NoThrowLiteralCheck } from '../../checker/ArkTS-eslint/NoThrowLiteralCheck';
import { EqeqeqCheck } from '../../checker/ArkTS-eslint/EqeqeqCheck';
import { NoExtraSemiCheck } from '../../checker/ArkTS-eslint/NoExtraSemiCheck';
import { CommaDangleCheck } from '../../checker/ArkTS-eslint/CommaDangleCheck';
import { PreferRegexpExecCheck } from '../../checker/ArkTS-eslint/PreferRegexpExecCheck';
import { PreferTsExpectErrorCheck } from '../../checker/ArkTS-eslint/PreferTsExpectErrorCheck';
import { DotNotationCheck } from '../../checker/ArkTS-eslint/DotNotationCheck';
import { ExplicitMemberAccessibilityCheck } from '../../checker/ArkTS-eslint/ExplicitMemberAccessibilityCheck';
import { NoExtraParensCheck } from '../../checker/ArkTS-eslint/NoExtraParensCheck';
import { NoDynamicDeleteCheck } from '../../checker/ArkTS-eslint/NoDynamicDeleteCheck';
import { NoImplicitAnyCatchCheck } from '../../checker/ArkTS-eslint/NoImplicitAnyCatchCheck';
import { NoEmptyInterfaceCheck } from '../../checker/ArkTS-eslint/NoEmptyInterfaceCheck';
import { NoUnsafeFinallyCheck } from '../../checker/ArkTS-eslint/NoUnsafeFinallyCheck';
import { PreferFunctionTypeCheck } from '../../checker/ArkTS-eslint/PreferFunctionTypeCheck';
import { PreferNamespaceKeywordCheck } from '../../checker/ArkTS-eslint/PreferNamespaceKeywordCheck';
import { PreferNullishCoalescingCheck } from '../../checker/ArkTS-eslint/PreferNullishCoalescingCheck';
import { ReturnAwaitCheck } from '../../checker/ArkTS-eslint/ReturnAwaitCheck';
import { PreferReduceTypeParameterCheck } from '../../checker/ArkTS-eslint/PreferReduceTypeParameterCheck';
import { CommaSpacingCheck } from '../../checker/ArkTS-eslint/CommaSpacingCheck';
import { NoExtraNonNullAssertionCheck } from '../../checker/ArkTS-eslint/NoExtraNonNullAssertionCheck';
import { NoTypeAliasCheck } from '../../checker/ArkTS-eslint/NoTypeAliasCheck';
import { NoMisusedPromisesCheck } from '../../checker/ArkTS-eslint/NoMisusedPromisesCheck';
import { TypeAnnotationSpacingCheck } from '../../checker/ArkTS-eslint/TypeAnnotationSpacingCheck';
import { StrictBooleanExpressionsCheck } from '../../checker/ArkTS-eslint/StrictBooleanExpressionsCheck';
import { SemiCheck } from '../../checker/ArkTS-eslint/SemiCheck';
import { NoArrayConstructorTSCheck } from '../../checker/ArkTS-eslint/NoArrayConstructorTSCheck';
import { PreferStringStartsEndsWithCheck } from '../../checker/ArkTS-eslint/PreferStringStartsEndsWithCheck';
import { PromiseFunctionAsyncCheck } from '../../checker/ArkTS-eslint/PromiseFunctionAsyncCheck';
import { KeywordSpacingCheck } from '../../checker/ArkTS-eslint/KeywordSpacingCheck';
import { FuncCallSpacingCheck } from '../../checker/ArkTS-eslint/FuncCallSpacingCheck';
import { MethodSignatureStyleCheck } from '../../checker/ArkTS-eslint/MethodSignatureStyleCheck';
import { LinesBetweenClassMembersCheck } from '../../checker/ArkTS-eslint/LinesBetweenClassMembersCheck';
import { MemberDelimiterStyleCheck } from '../../checker/ArkTS-eslint/MemberDelimiterStyleCheck';
import { NoUnsafeReturnCheck } from '../../checker/ArkTS-eslint/NoUnsafeReturnCheck';
import { PreferReadonlyCheck } from '../../checker/ArkTS-eslint/PreferReadonlyCheck';
import { NoUseBeforeDefineCheck } from '../../checker/ArkTS-eslint/NoUseBeforeDefineCheck';
import { PreferAsConstCheck } from '../../checker/ArkTS-eslint/PreferAsConstCheck';
import { QuotesCheck } from '../../checker/ArkTS-eslint/QuotesCheck';
import { NoRegexSpacesCheck } from '../../checker/ArkTS-eslint/NoRegexSpacesCheck';
import { PreferOptionalChainCheck } from '../../checker/ArkTS-eslint/PreferOptionalChainCheck';
import { NoTrailingSpacesCheck } from '../../checker/ArkTS-eslint/NoTrailingSpacesCheck';
import { NoExtraBooleanCastCheck } from '../../checker/ArkTS-eslint/NoExtraBooleanCastCheck';
import { NoConfusingVoidExpressionCheck } from '../../checker/ArkTS-eslint/NoConfusingVoidExpressionCheck';
import { PreferArrowCallbackCheck } from '../../checker/ArkTS-eslint/PreferArrowCallbackCheck';
import {
    NoUnnecessaryBooleanLiteralCompareCheck
} from '../../checker/ArkTS-eslint/NoUnnecessaryBooleanLiteralCompareCheck';
import { NoImpliedEvalCheck } from '../../checker/ArkTS-eslint/NoImpliedEvalCheck';
import { PreferConstCheck } from '../../checker/ArkTS-eslint/PreferConstCheck';
import { PreferIncludesCheck } from '../../checker/ArkTS-eslint/PreferIncludesCheck';
import { RestrictPlusOperandsCheck } from '../../checker/ArkTS-eslint/RestrictPlusOperandsCheck';
import { UnboundMethodCheck } from '../../checker/ArkTS-eslint/UnboundMethodCheck';
import { RestrictTemplateExpressionsCheck } from '../../checker/ArkTS-eslint/RestrictTemplateExpressionsCheck';
import { TripleSlashReferenceCheck } from '../../checker/ArkTS-eslint/TripleSlashReferenceCheck';
import { CacheAvplayerCheck } from '../../checker/performance/CacheAvplayerCheck';
import { ColorOverlayEffectCheck } from '../../checker/performance/ColorOverlayEffectCheck';
import { CombineSameArgAnimatetoCheck } from '../../checker/performance/CombineSameArgAnimatetoCheck';
import { ConstantCheck } from '../../checker/performance/ConstantCheck';
import { HomepagePrepareLoadCheck } from '../../checker/performance/HomepagePrepareLoadCheck';
import { ImageFormatCheck } from '../../checker/performance/ImageFormatCheck';
import { ImageSizeCheck } from '../../checker/performance/ImageSizeCheck';
import { LimitRefreshScopeCheck } from '../../checker/performance/LimitRefreshScopeCheck';
import { LoadOnDemandCheck } from '../../checker/performance/LoadOnDemandCheck';
import { NoStateVarAccessInLoopCheck } from '../../checker/performance/NoStateVarAccessInLoopCheck';
import { NoUseAnyExportCurrentCheck } from '../../checker/performance/NoUseAnyExportCurrentCheck';
import { NoUseAnyExportOtherCheck } from '../../checker/performance/NoUseAnyExportOtherCheck';
import { PagePrefetchCheck } from '../../checker/performance/PagePrefetchCheck';
import { RemoveContainerWithoutPropertyCheck } from '../../checker/performance/RemoveContainerWithoutPropertyCheck';
import {
    ReplaceNestedReusableComponentByBuilderCheck
} from '../../checker/performance/ReplaceNestedReusableComponentByBuilderCheck';
import { ResourcesFileCheck } from '../../checker/performance/ResourcesFileCheck';
import {
    SuggestReuseidForIfElseReusableComponentCheck
} from '../../checker/performance/SuggestReuseidForlfElseReusableComponentCheck';
import {
    UseAttributeUpdaterControlRefreshScopeCheck
} from '../../checker/performance/UseAttributeUpdaterControlRefreshScopeCheck';
import { UseReusableComponentCheck } from '../../checker/performance/UseReusableComponentCheck';
import { WebResourceForImageComponentCheck } from '../../checker/performance/WebResourceForImageComponentCheck';
import { NoCycleCheck } from '../../checker/security/NoCycleCheck';
import { NoUnsafeAesCheck } from '../../checker/security/NoUnsafeAesCheck';
import { NoUnsafeDhCheck } from '../../checker/security/NoUnsafeDhCheck';
import { NoUnsafeDhKeyCheck } from '../../checker/security/NoUnsafeDhKeyCheck';
import { NoUnsafeDsaCheck } from '../../checker/security/NoUnsafeDsaCheck';
import { NoUnsafeDsaKeyCheck } from '../../checker/security/NoUnsafeDsaKeyCheck';
import { NoUnsafeEcdsaCheck } from '../../checker/security/NoUnsafeEcdsaCheck';
import { NoUnsafeHashCheck } from '../../checker/security/NoUnsafeHashCheck';
import { NoUnsafeRsaEncryptCheck } from '../../checker/security/NoUnsafeRsaEncryptCheck';
import { NoUnsafeRsaKeyCheck } from '../../checker/security/NoUnsafeRsaKeyCheck';
import { NoUnsafeMacCheck } from '../../checker/security/NoUnsafeMacCheck';
import { NoUnsafeRsaSignCheck } from '../../checker/security/NoUnsafeRsaSignCheck';
import { NoUnsafeHUksCheck } from "../../checker/security/NoUnsafeHuksCheck";
import { NoUnsafeKdfCheck } from "../../checker/security/NoUnsafeKdfCheck";
import { NoUnsafeSm4Check } from "../../checker/security/NoUnsafeSm4Check";
import { NoUnsafeEcdhCheck } from "../../checker/security/NoUnsafeEcdhCheck";
import { NoUnsafeSm2KeyCheck } from "../../checker/security/NoUnsafeSm2KeyCheck";
import { NoUnsafeSm2CipherCheck } from "../../checker/security/NoUnsafeSm2CipherCheck";
import { NoHighLoadedFrameRateRangeCheck } from '../../checker/performance/NoHighLoadedFrameRateRangeCheck';
import { OneMultiBreakpointCheck } from '../../checker/cross-device-app-dev/OneMultiBreakpointCheck';
import { WindowSizeChangeListenerCheck } from '../../checker/cross-device-app-dev/WindowSizeChangeListenerCheck';
import { AvoidInspectorInterfaceCheck } from '../../checker/correctness/AvoidInspectorInterfaceCheck';
import { CameraCallingSequenceAsyncCheck } from '../../checker/correctness/CameraCallingSequenceAsyncCheck';
import { BadCallbacksInCameraOn } from '../../checker/correctness/BadCallbacksInCameraOn';
import { KeepAddInputBeforeAddOutput } from '../../checker/correctness/KeepAddInputBeforeAddOutput';
import { CameraInputOpenCheck } from '../../checker/correctness/CameraInputOpenCheck';
import { ImageAdaptiveColorModeCheck } from '../../checker/performance/ImageAdaptiveColorModeCheck';
import { DarkColorModeCheck } from '../../checker/performance/DarkColorModeCheck';
import { LowerAppBrightnessCheck } from '../../checker/performance/LowerAppBrightnessCheck';
import { StreamUsageApiCheck } from '../../checker/performance/StreamUsageApiCheck';
import { AvoidMemoryLeakInAnimator } from '../../checker/performance/AvoidMemoryLeakInAnimator';
import { AvoidMemoryLeakInDisplaysync } from '../../checker/performance/AvoidMemoryLeakInDisplaysync';

//new checker
import { GlobalVarUpdateCheck } from '../../checker/performance/GlobalVarUpdateCheck';
import { GlobalVarUpdateAsyncCheck } from '../../checker/performance/GlobalVarUpdateAsyncCheck';
import { LazyStringCheckInLog } from '../../checker/performance/LazyStringCheckInLog';
import { NoUseAnyImportCheck } from '../../checker/performance/NoUseAnyImportCheck';
import { AvoidOverusingCustomComponentCheck } from '../../checker/performance/AvoidOverusingCustomComponentCheck';
import { BadDeepCloneCheck } from '../../checker/performance/BadDeepCloneCheck';
import { ReasonableSensorUseCheck } from '../../checker/performance/ReasonableSensorUseCheck';
import { ReasonableGpsUseCheck } from '../../checker/performance/ReasonableGpsUseCheck';
import { AvoidObjectAllocInBuild } from '../../checker/performance/AvoidObjectAllocInBuild';
import { InvalidPropertyCheck } from '../../checker/performance/InvalidPropertyCheck';
import { IneffectiveLayoutWeightCheck } from '../../checker/performance/IneffectiveLayoutWeightCheck';
import { ReasonableAudioUseCheck } from '../../checker/performance/ReasonableAudioUseCheck';
import { MonitorInvisibleAreaInImageAnimation } from '../../checker/performance/MonitorInvisibleAreaInImageAnimation';
import { CryptoReplacementCheck } from '../../checker/performance/CryptoReplacementCheck';
import { OptionalConditionChainingCheck } from '../../checker/performance/OptionalConditionChainingCheck';
import { ReuseDateInstancesCheck } from '../../checker/performance/ReuseDateInstancesCheck';
import { AvoidConstantExpressionInBuild } from '../../checker/performance/AvoidConstantExpressionInBuild';
import { AvoidAnimationInLifecycle } from '../../checker/correctness/AvoidAnimationInLifecycle';
import { BadUsageInUiabilityLifecycle } from '../../checker/correctness/BadUsageInUiabilityLifecycle';
import { CustomdialogNotAssignValueCheck } from '../../checker/correctness/CustomdialogNotAssignValueCheck';
import { AVPlayBackStateCheck } from '../../checker/performance/AVPlayBackStateCheck';
import { NestedPostFrameCallbackCheck } from '../../checker/performance/NestedPostFrameCallbackCheck';
import { OnPageHideReleaseCheck } from '../../checker/performance/OnPageHideReleaseCheck';
import { WebResponseDataTypeCheck } from '../../checker/performance/WebResponseDataTypeCheck';
import { StackComponentNestingCheck } from '../../checker/performance/StackComponentNestingCheck';
import { DataShareQueryUnReleaseCheck } from '../../checker/performance/DataShareQueryUnReleaseCheck';
import { UseCompriseOptimizeCheck } from '../../checker/performance/UseCompriseOptimizeCheck';
import { AvoidNestedLayoutweightCheck } from '../../checker/performance/AvoidNestedLayoutweightCheck';
import { CallbackReleaseProperlyCheck } from '../../checker/correctness/CallbackReleaseProperlyCheck';
import { BadParameterPassingCheck } from '../../checker/performance/BadParameterPassingCheck';
import { CustomComponentCheck } from '../../checker/performance/CustomComponentCheck';
import { SetListSizeInScrollCheck } from '../../checker/performance/SetListSizeInScrollCheck';
import { NoRegexInLoopCheck } from '../../checker/performance/NoRegexInLoopCheck';
import { UpdateStateVarBetweenAnimateTosCheck } from '../../checker/performance/UpdateStateVarBetweenAnimateTosCheck';

// DSL
import { BaseChecker } from '../../checker/BaseChecker';
import NoForInArrayCheckDsl from "../../checker/dsl/NoForInArrayCheckDsl";
import ConditionAndLoopCurlyCheckDsl from '../../checker/dsl/ConditionAndLoopCurlyCheckDsl';
import SwitchBreakCheckDsl from '../../checker/dsl/SwitchBreakCheckDsl';
import MaxCallbackDepthCheckDsl from '../../checker/dsl/MaxCallbackDepthCheckDsl';
import NoNonNullAssertionCheckDsl from '../../checker/dsl/NoNonNullAssertionCheckDsl';
import DefaultCaseCheckDsl from '../../checker/dsl/DefaultCaseCheckDsl';
import DefaultCaseLastCheckDsl from '../../checker/dsl/DefaultCaseLastCheckDsl';
import UseIsNaNBinaryExpressionCheckDsl from '../../checker/dsl/UseIsNaNBinaryExpressionCheckDsl';
import UseIsNaNSwitchStatementCheckDsl from '../../checker/dsl/UseIsNaNSwitchStatementCheckDsl';
import UseIsNaNCallExpressionCheckDsl from '../../checker/dsl/UseIsNaNCallExpressionCheckDsl';
import ConsistentTypeImportsImportDeclarationCheckDsl from '../../checker/dsl/ConsistentTypeImportsImportDeclarationCheckDsl';
import ConsistentTypeImportsVariableStatementCheckDsl from '../../checker/dsl/ConsistentTypeImportsVariableStatementCheckDsl';
import ConsistentTypeImportsTypeAliasDeclarationCheckDsl from '../../checker/dsl/ConsistentTypeImportsTypeAliasDeclarationCheckDsl';
import NoCaseDeclarationsCheckDsl from '../../checker/dsl/NoCaseDeclarationsCheckDsl';
import NoThisAliasCheckDsl from '../../checker/dsl/NoThisAliasCheckDsl';
import FileNamingConventionCheckDsl from '../../checker/dsl/FileNamingConventionCheckDsl';
import NoKeyGeneratorInForEach from "../../checker/dsl/NoKeyGeneratorInForEach";
import ConsoleWithinHighFrequencyFunc from "../../checker/dsl/ConsoleWithinHighFrequencyFunc";
import ArrayTypeCheckDSL from "../../checker/dsl/ArrayTypeCheck";
import ModuleTopLevelCodeCheckDSL from '../../checker/dsl/ModuleTopLevelCodeCheck';
import FuncCallSpacingCheckDSL from '../../checker/dsl/FuncCallSpacingCheck';
import MaxClassesPerFileCheckDSL from '../../checker/dsl/MaxClassesPerFileCheck';
import NoArrayConstructorCheckDSL from '../../checker/dsl/NoArrayConstructorCheck';
import NoUselessCatchCheckDSL from '../../checker/dsl/NoUselessCatchCheck';
import PreferEnumInitializwersCheckDSL from '../../checker/dsl/PreferEnumInitializwersCheck';
import PreferAsConstCheckDSL from "../../checker/dsl/PreferAsConstCheck";
import SpaceBeforeFunctionParenCheckDSL from "../../checker/dsl/SpaceBeforeFunctionParenCheck";
import NoMisusedNewCheckDsl from '../../checker/dsl/NoMisusedNewCheckDsl';
import NoNullAccessDsl from '../../checker/dsl/ir/NoNullAccessDsl';
import PathTraversalDsl from "../../checker/dsl/PathTraversalDsl";
import HardcodedPasswordDsl from '../../checker/dsl/HardcodedPasswordDsl';
import InsecureRandomDsl from '../../checker/dsl/InsecureRandomDsl';
import SensitiveStorageDsl from '../../checker/dsl/SensitiveStorageDsl';
import LoggingSensitiveInfoDsl from '../../checker/dsl/LoggingSensitiveInfoDsl';
import NoUnsafeMacDsl from '../../checker/dsl/NoUnsafeMacDsl';
import UnrestrictedFileUploadDsl from '../../checker/dsl/UnrestrictedFileUploadDsl';
import NoSSRFDsl from '../../checker/dsl/NoSSRFDsl';
import AdjacentOverloadSignatureDsl from '../../checker/dsl/AdjacentOverloadSignatureDsl';
import BanTypesDsl from '../../checker/dsl/BanTypesDsl';
import ClassLiteralPropertyStyleDsl from '../../checker/dsl/ClassLiteralPropertyStyleDsl';
import ConsistentIndexedObjectStyleDsl from '../../checker/dsl/ConsistentIndexedObjectStyleDsl';
import EqeqeqDsl from '../../checker/dsl/EqeqeqDsl';
import ExplicitMemberAccessibilityDsl from '../../checker/dsl/ExplicitMemberAccessibilityDsl';
import InitDeclarationsDsl from '../../checker/dsl/InitDeclarationsDsl';
import MaxDepthDsl from '../../checker/dsl/MaxDepthDsl';
import NoArrayConstructorTSDsl from '../../checker/dsl/NoArrayConstructorTSDsl';
import NoCondAssignDsl from '../../checker/dsl/NoCondAssignDsl';
import NoConfusingNonNullAssertionDsl from '../../checker/dsl/NoConfusingNonNullAssertionDsl';
import NoControlRegexDsl from '../../checker/dsl/NoControlRegexDsl';
import NoDupeClassMembersDsl from '../../checker/dsl/NoDupeClassMembersDsl';
import TypedefDsl from '../../checker/dsl/TypedefDsl';
import NoUselessCommentCheckDsl from '../../checker/dsl/NoUselessCommentCheckDsl';
import NoUnsafeAuthenticationDsl from '../../checker/dsl/NoUnsafeAuthenticationDsl';
import AwaitThenableCheckDsl from '../../checker/dsl/AwaitThenableCheckDsl';
import MandatoryDefaultValueForLocalInitializationDsl from '../../checker/dsl/MandatoryDefaultValueForLocalInitializationDsl';
import ConstantPropertyReferencingInLoopsCheckDsl from '../../checker/dsl/ir/ConstantPropertyReferencingInLoopsCheckDsl';
import ImageSyncLoadCheckDsl from '../../checker/dsl/ir/ImageSyncLoadCheckDsl';
import CombineSameArgAnimatetoCheckDsl from '../../checker/dsl/ir/CombineSameArgAnimatetoCheckDsl';
import NumberInitCheckDsl from '../../checker/dsl/ir/NumberInitCheckDsl';
import LazyForEachDsl from '../../checker/dsl/LazyForEachDsl';
import FunctionVariableDsl from '../../checker/dsl/FunctionVariableDsl';
import ArrayDefinitionCheckDsl from '../../checker/dsl/ir/ArrayDefinitionCheckDsl';
import NoFunctionInLoopDsl from '../../checker/dsl/NoFunctionInLoopDsl';
import NoAnyDsl from '../../checker/dsl/NoAnyDsl';
import ShouldHandleErrorDsl from '../../checker/dsl/ShouldHandleErrorDsl';
import NoConstModifyDsl from '../../checker/dsl/ShouldInatializeConstDsl';
import NoWithStatementDsl from '../../checker/dsl/NoWithStatementDsl';
import NoNullInPushDsl from '../../checker/dsl/NoNullInPushDsl';
import NoConsoleAtTopDsl from '../../checker/dsl/NoConsoleAtTopDsl';
import NoDuplicateImportDsl from '../../checker/dsl/NoDuplicateImportDsl';
import NoEmptyBranchDsl from '../../checker/dsl/NoEmptyBranchDsl';
import NoParamReassignDsl from '../../checker/dsl/NoParamReassignDsl';
import NoNoneBoolConditionDsl from '../../checker/dsl/NoNoneBoolConditionDsl';
import NoEvalDsl from '../../checker/dsl/NoEvalDsl';
import NoDuplicateClassPropertyDsl from '../../checker/dsl/NoDuplicateClassPropertyDsl';
import NoTopLevelVarDsl from '../../checker/dsl/NoTopLevelVarDsl';
import NoMagicNumberDsl from '../../checker/dsl/NoMagicNumberDsl';
import NoNamespaceImportDsl from '../../checker/dsl/NoNamespaceImportDsl';
import NoUndeclaredVarDsl from '../../checker/dsl/NoUndeclaredVarDsl';
import NoPathConcatDsl from '../../checker/dsl/NoPathConcatDsl';
import NoEmptyFinallyDsl from '../../checker/dsl/NoEmptyFinallyDsl';
import NoNewFunctionDsl from '../../checker/dsl/NoNewFunctionDsl';
import NoAwaitInLoopDsl from '../../checker/dsl/NoAwaitInLoopDsl';
import NoAssignmentInCondition from '../../checker/dsl/NoAssignmentInCondition';
import NoSetTimeOutStringDsl from '../../checker/dsl/NoSetTimeOutStringDsl';
import NoMultipleBlankLinesDsl from '../../checker/dsl/NoMultipleBlankLinesDsl';
import NoExcessiveSingleLineCommentsDsl from '../../checker/dsl/NoExcessiveSingleLineCommentsDsl';
import NoMathRandomInLoopDsl from '../../checker/dsl/NoMathRandomInLoopDsl';
import NoMagicStringDsl from '../../checker/dsl/NoMagicStringDsl';
import NoSensitiveMethodNameDsl from '../../checker/dsl/NoSensitiveMethodNameDsl';
import NoSensitivePropertyNameDsl from '../../checker/dsl/NoSensitivePropertyNameDsl';
import NoSensitiveClassNameDsl from '../../checker/dsl/NoSensitiveClassNameDsl';
import NoUnsafeInnerHtmlDsl from '../../checker/dsl/NoUnsafeInnerHtmlDsl';
import NoUnusedVariableDsl from '../../checker/dsl/NoUnusedVariableDsl';
import NoDynamicRegExpDsl from '../../checker/dsl/NoDynamicRegExpDsl';
import NoUntrustedJsonParseDsl from '../../checker/dsl/NoUntrustedJsonParseDsl';
import NoSetIntervalStringDsl from '../../checker/dsl/NoSetIntervalStringDsl';
import NoDocumentWriteDsl from '../../checker/dsl/NoDocumentWriteDsl';
import NoAsyncPromiseExecutorCheckDsl from '../../checker/dsl/ir/NoAsyncPromiseExecutorCheckDsl';

const logger = Logger.getLogger(LOG_MODULE_TYPE.HOMECHECK, 'CheckerIndex');

export const fileRules = {
    // @ArkTS-eslint
    "@ArkTS-eslint/init-declarations-check": (): BaseChecker => new InitDeclarationsCheck(),
    "@ArkTS-eslint/default-param-last-check": (): BaseChecker => new DefaultParamLastCheck(),
    "@ArkTS-eslint/explicit-function-return-type-check": (): BaseChecker => new ExplicitFunctionReturnTypeCheck(),
    "@ArkTS-eslint/explicit-module-boundary-types-check": (): BaseChecker => new ExplicitModuleBoundaryTypesCheck(),
    "@ArkTS-eslint/no-dupe-class-members-check": (): BaseChecker => new NoDupeClassMembersCheck(),
    "@ArkTS-eslint/ban-ts-comment-check": (): BaseChecker => new BanTsCommentCheck(),
    "@ArkTS-eslint/member-ordering-check": (): BaseChecker => new MemberOrderingCheck(),
    "@ArkTS-eslint/no-unsafe-optional-chaining-check": (): BaseChecker => new NoUnsafeOptionalChainingCheck(),
    "@ArkTS-eslint/no-unnecessary-condition-check": (): BaseChecker => new NoUnnecessaryConditionCheck(),
    "@ArkTS-eslint/no-unnecessary-qualifier-check": (): BaseChecker => new NoUnnecessaryQualifierCheck(),
    "@ArkTS-eslint/no-unnecessary-type-arguments-check": (): BaseChecker => new NoUnnecessaryTypeArgumentsCheck(),
    "@ArkTS-eslint/no-unnecessary-type-assertion-check": (): BaseChecker => new NoUnnecessaryTypeAssertionCheck(),
    "@ArkTS-eslint/require-await-check": (): BaseChecker => new RequireAwaitCheck(),
    "@ArkTS-eslint/prefer-arrow-callback-check": (): BaseChecker => new PreferArrowCallbackCheck(),
    "@ArkTS-eslint/no-unnecessary-boolean-literal-compare-check": (): BaseChecker => new NoUnnecessaryBooleanLiteralCompareCheck(),
    "@ArkTS-eslint/switch-exhaustiveness-check": (): BaseChecker => new SwitchExhaustivenessCheck(),
    "@ArkTS-eslint/unified-signatures-check": (): BaseChecker => new UnifiedSignaturesCheck(),
    "@ArkTS-eslint/restrict-plus-operands-check": (): BaseChecker => new RestrictPlusOperandsCheck(),
    "@ArkTS-eslint/restrict-template-expressions-check": (): BaseChecker => new RestrictTemplateExpressionsCheck(),
    "@ArkTS-eslint/unbound-method-check": (): BaseChecker => new UnboundMethodCheck(),
    "@ArkTS-eslint/triple-slash-reference-check": (): BaseChecker => new TripleSlashReferenceCheck(),
    "@ArkTS-eslint/valid-typeof-check": (): BaseChecker => new ValidTypeofCheck(),
    "@ArkTS-eslint/array-type-check": (): BaseChecker => new ArrayTypeCheck(),
    "@ArkTS-eslint/no-floating-promises-check": (): BaseChecker => new NoFloatingPromisesCheck(),
    "@ArkTS-eslint/no-useless-backreference-check": (): BaseChecker => new NoUselessBackreferenceCheck(),
    "@ArkTS-eslint/ban-tslint-comment-check": (): BaseChecker => new BanTSLintCommentCheck(),
    "@ArkTS-eslint/ban-types-check": (): BaseChecker => new BanTypesCheck(),
    "@ArkTS-eslint/brace-style-check": (): BaseChecker => new BraceStyleCheck(),
    "@ArkTS-eslint/no-useless-escape-check": (): BaseChecker => new NoUselessEscapeCheck(),
    "@ArkTS-eslint/no-this-alias-check": (): BaseChecker => new NoThisAliasCheck(),
    "@ArkTS-eslint/no-non-null-assertion-check": (): BaseChecker => new NoNonNullAssertionCheck(),
    "@ArkTS-eslint/no-misused-new-check": (): BaseChecker => new NoMisusedNewCheck(),
    "@ArkTS-eslint/no-require-imports-check": (): BaseChecker => new NoRequireImportsCheck(),
    "@ArkTS-eslint/no-parameter-properties-check": (): BaseChecker => new NoParameterPropertiesCheck(),
    "@ArkTS-eslint/no-redeclare-check": (): BaseChecker => new NoRedeclareCheck(),
    "@ArkTS-eslint/no-shadow-check": (): BaseChecker => new NoShadowCheck(),
    "@ArkTS-eslint/no-non-null-asserted-optional-chain-check": (): BaseChecker => new NoNonNullAssertedOptionalChainCheck(),
    "@ArkTS-eslint/consistent-type-assertions-check": (): BaseChecker => new ConsistentTypeAssertionsCheck(),
    "@ArkTS-eslint/consistent-type-definitions-check": (): BaseChecker => new ConsistentTypeDefinitionsCheck(),
    "@ArkTS-eslint/consistent-type-imports-check": (): BaseChecker => new ConsistentTypeImportsCheck(),
    "@ArkTS-eslint/consistent-indexed-object-style-check": (): BaseChecker => new ConsistentIndexedObjectStyleCheck(),
    "@ArkTS-eslint/no-useless-catch-check": (): BaseChecker => new NoUselessCatchCheck(),
    "@ArkTS-eslint/no-new-wrappers-check": (): BaseChecker => new NoNewWrappersCheck(),
    "@ArkTS-eslint/no-cond-assign-check": (): BaseChecker => new NoCondAssignCheck(),
    "@ArkTS-eslint/max-lines-per-function-check": (): BaseChecker => new MaxLinesPerFunctionCheck(),
    "@ArkTS-eslint/no-duplicate-imports-check": (): BaseChecker => new NoDuplicateImportsCheck(),
    "@ArkTS-eslint/no-regex-spaces-check": (): BaseChecker => new NoRegexSpacesCheck(),
    "@ArkTS-eslint/no-loop-func-check": (): BaseChecker => new NoLoopFuncCheck(),
    "@ArkTS-eslint/no-extraneous-class-check": (): BaseChecker => new NoExtraneousClassCheck(),
    "@ArkTS-eslint/no-loss-of-precision-check": (): BaseChecker => new NoLossOfPrecisionCheck(),
    "@ArkTS-eslint/no-for-in-array-check": (): BaseChecker => new NoForInArrayCheck(),
    "@ArkTS-eslint/max-classes-per-file-check": (): BaseChecker => new MaxClassesPerFileCheck(),
    "@ArkTS-eslint/max-nested-callbacks-check": (): BaseChecker => new MaxNestedCallbacksCheck(),
    "@ArkTS-eslint/no-async-promise-executor-check": (): BaseChecker => new NoAsyncPromiseExecutorCheck(),
    "@ArkTS-eslint/no-array-constructor-check": (): BaseChecker => new NoArrayConstructorCheck(),
    "@ArkTS-eslint/max-depth-check": (): BaseChecker => new MaxDepthCheck(),
    "@ArkTS-eslint/eqeqeq-check": (): BaseChecker => new EqeqeqCheck(),
    "@ArkTS-eslint/no-extra-semi-check": (): BaseChecker => new NoExtraSemiCheck(),
    "@ArkTS-eslint/no-array-constructor-ts-check": (): BaseChecker => new NoArrayConstructorTSCheck(),
    "@ArkTS-eslint/no-extra-boolean-cast-check": (): BaseChecker => new NoExtraBooleanCastCheck(),
    "@ArkTS-eslint/no-confusing-void-expression-check": (): BaseChecker => new NoConfusingVoidExpressionCheck(),
    "@ArkTS-eslint/prefer-const-check": (): BaseChecker => new PreferConstCheck(),
    "@ArkTS-eslint/no-case-declarations-check": (): BaseChecker => new NoCaseDeclarationsCheck(),
    "@ArkTS-eslint/no-unsafe-assignment-check": (): BaseChecker => new NoUnsafeAssignmentCheck(),
    "@ArkTS-eslint/max-lines-check": (): BaseChecker => new MaxLinesCheck(),
    "@ArkTS-eslint/default-case-check": (): BaseChecker => new DefaultCaseCheck(),
    "@ArkTS-eslint/default-case-last-check": (): BaseChecker => new DefaultCaseLastCheck(),
    "@ArkTS-eslint/use-isnan-check": (): BaseChecker => new UseIsNaNCheck(),
    "@ArkTS-eslint/no-invalid-void-type-check": (): BaseChecker => new NoInvalidVoidTypeCheck(),
    "@ArkTS-eslint/no-namespace-check": (): BaseChecker => new NoNameSpaceCheck(),
    "@ArkTS-eslint/typedef-check": (): BaseChecker => new TypedefCheck(),
    "@ArkTS-eslint/no-unnecessary-type-constraint-check": (): BaseChecker => new NoUnnecessaryTypeConstraintCheck(),
    "@ArkTS-eslint/no-unsafe-argument-check": (): BaseChecker => new NoUnsafeArgumentCheck(),
    "@ArkTS-eslint/no-unsafe-call-check": (): BaseChecker => new NoUnsafeCallCheck(),
    "@ArkTS-eslint/no-control-regex-check": (): BaseChecker => new NoControlRegexCheck(),
    "@ArkTS-eslint/no-empty-character-class-check": (): BaseChecker => new NoEmptyCharacterClassCheck(),
    "@ArkTS-eslint/no-invalid-regexp-check": (): BaseChecker => new NoInvalidRegexpCheck(),
    "@ArkTS-eslint/no-ex-assign-check": (): BaseChecker => new NoExAssignCheck(),
    "@ArkTS-eslint/no-octal-check": (): BaseChecker => new NoOctalCheck(),
    "@ArkTS-eslint/no-unexpected-multiline-check": (): BaseChecker => new NoUnexpectedMultilineCheck(),
    "@ArkTS-eslint/no-unreachable-check": (): BaseChecker => new NoUnreachableCheck(),
    "@ArkTS-eslint/no-inferrable-types-check": (): BaseChecker => new NoInferrableTypesCheck(),
    "@ArkTS-eslint/space-infix-ops-check": (): BaseChecker => new SpaceInfixOpsCheck(),
    "@ArkTS-eslint/space-before-function-paren-check": (): BaseChecker => new SpaceBeforeFunctionParenCheck(),
    "@ArkTS-eslint/no-restricted-syntax-check": (): BaseChecker => new NoRestrictedSyntaxCheck(),
    "@ArkTS-eslint/adjacent-overload-signatures-check": (): BaseChecker => new AdjacentOverloadSignaturesCheck(),
    "@ArkTS-eslint/class-literal-property-style-check": (): BaseChecker => new ClassLiteralPropertyStyleCheck(),
    "@ArkTS-eslint/no-confusing-non-null-assertion-check": (): BaseChecker => new NoConfusingNonNullAssertionCheck(),
    "@ArkTS-eslint/no-empty-function-check": (): BaseChecker => new NoEmptyFunctionCheck(),
    "@ArkTS-eslint/prefer-for-of-check": (): BaseChecker => new PreferForOfCheck(),
    "@ArkTS-eslint/no-magic-numbers-check": (): BaseChecker => new NoMagicNumbersCheck(),
    "@ArkTS-eslint/return-await-check": (): BaseChecker => new ReturnAwaitCheck(),
    "@ArkTS-eslint/prefer-reduce-type-parameter-check": (): BaseChecker => new PreferReduceTypeParameterCheck(),
    "@ArkTS-eslint/prefer-nullish-coalescing-check": (): BaseChecker => new PreferNullishCoalescingCheck(),
    "@ArkTS-eslint/await-thenable-check": (): BaseChecker => new AwaitThenableCheck(),
    "@ArkTS-eslint/no-useless-constructor-check": (): BaseChecker => new NoUselessConstructorCheck(),
    "@ArkTS-eslint/prefer-enum-initializers-check": (): BaseChecker => new PreferEnumInitializwersCheck(),
    "@ArkTS-eslint/prefer-literal-enum-member-check": (): BaseChecker => new PreferLiteralEnumMemberCheck(),
    "@ArkTS-eslint/prefer-readonly-parameter-types-check": (): BaseChecker => new PreferReadonlyParametertypesCheck(),
    "@ArkTS-eslint/require-array-sort-compare-check": (): BaseChecker => new RequireArraySortCompareCheck(),
    "@ArkTS-eslint/no-unused-vars-check": (): BaseChecker => new NoUnusedVarsCheck(),
    "@ArkTS-eslint/no-invalid-this-check": (): BaseChecker => new NoInvalidThisCheck(),
    "@ArkTS-eslint/no-fallthrough-check": (): BaseChecker => new NoFallthroughCheck(),
    "@ArkTS-eslint/no-base-to-string-check": (): BaseChecker => new NoBaseToStringCheck(),
    "@ArkTS-eslint/no-explicit-any-check": (): BaseChecker => new NoExplicitAnyCheck(),
    "@ArkTS-eslint/naming-convention-check": (): BaseChecker => new NamingConventionCheck(),
    "@ArkTS-eslint/no-unused-expressions-check": (): BaseChecker => new NoUnusedExpressionsCheck(),
    "@ArkTS-eslint/no-unsafe-member-access-check": (): BaseChecker => new NoUnsafeMemberAccessCheck(),
    "@ArkTS-eslint/no-throw-literal-check": (): BaseChecker => new NoThrowLiteralCheck(),
    "@ArkTS-eslint/comma-dangle-check": (): BaseChecker => new CommaDangleCheck(),
    "@ArkTS-eslint/prefer-regexp-exec-check": (): BaseChecker => new PreferRegexpExecCheck(),
    "@ArkTS-eslint/prefer-ts-expect-error-check": (): BaseChecker => new PreferTsExpectErrorCheck(),
    "@ArkTS-eslint/dot-notation-check": (): BaseChecker => new DotNotationCheck(),
    "@ArkTS-eslint/explicit-member-accessibility-check": (): BaseChecker => new ExplicitMemberAccessibilityCheck(),
    "@ArkTS-eslint/no-extra-parens-check": (): BaseChecker => new NoExtraParensCheck(),
    "@ArkTS-eslint/no-dynamic-delete-check": (): BaseChecker => new NoDynamicDeleteCheck(),
    "@ArkTS-eslint/no-implicit-any-catch-check": (): BaseChecker => new NoImplicitAnyCatchCheck(),
    "@ArkTS-eslint/no-empty-interface-check": (): BaseChecker => new NoEmptyInterfaceCheck(),
    "@ArkTS-eslint/no-unsafe-finally-check": (): BaseChecker => new NoUnsafeFinallyCheck(),
    "@ArkTS-eslint/prefer-function-type-check": (): BaseChecker => new PreferFunctionTypeCheck(),
    "@ArkTS-eslint/prefer-namespace-keyword-check": (): BaseChecker => new PreferNamespaceKeywordCheck(),
    "@ArkTS-eslint/comma-spacing-check": (): BaseChecker => new CommaSpacingCheck(),
    "@ArkTS-eslint/no-extra-non-null-assertion-check": (): BaseChecker => new NoExtraNonNullAssertionCheck(),
    "@ArkTS-eslint/no-type-alias-check": (): BaseChecker => new NoTypeAliasCheck(),
    "@ArkTS-eslint/no-misused-promises-check": (): BaseChecker => new NoMisusedPromisesCheck(),
    "@ArkTS-eslint/type-annotation-spacing-check": (): BaseChecker => new TypeAnnotationSpacingCheck(),
    "@ArkTS-eslint/strict-boolean-expressions-check": (): BaseChecker => new StrictBooleanExpressionsCheck(),
    "@ArkTS-eslint/semi-check": (): BaseChecker => new SemiCheck(),
    "@ArkTS-eslint/prefer-string-starts-ends-with-check": (): BaseChecker => new PreferStringStartsEndsWithCheck(),
    "@ArkTS-eslint/promise-function-async-check": (): BaseChecker => new PromiseFunctionAsyncCheck(),
    "@ArkTS-eslint/keyword-spacing-check": (): BaseChecker => new KeywordSpacingCheck(),
    "@ArkTS-eslint/func-call-spacing-check": (): BaseChecker => new FuncCallSpacingCheck(),
    "@ArkTS-eslint/method-signature-style-check": (): BaseChecker => new MethodSignatureStyleCheck(),
    "@ArkTS-eslint/prefer-as-const-check": (): BaseChecker => new PreferAsConstCheck(),
    "@ArkTS-eslint/lines-between-class-members-check": (): BaseChecker => new LinesBetweenClassMembersCheck(),
    "@ArkTS-eslint/member-delimiter-style-check": (): BaseChecker => new MemberDelimiterStyleCheck(),
    "@ArkTS-eslint/no-unsafe-return-check": (): BaseChecker => new NoUnsafeReturnCheck(),
    "@ArkTS-eslint/no-use-before-define-check": (): BaseChecker => new NoUseBeforeDefineCheck(),
    "@ArkTS-eslint/prefer-readonly-check": (): BaseChecker => new PreferReadonlyCheck(),
    "@ArkTS-eslint/quotes-check": (): BaseChecker => new QuotesCheck(),
    "@ArkTS-eslint/prefer-optional-chain-check": (): BaseChecker => new PreferOptionalChainCheck(),
    "@ArkTS-eslint/no-trailing-spaces-check": (): BaseChecker => new NoTrailingSpacesCheck(),
    "@ArkTS-eslint/no-implied-eval-check": (): BaseChecker => new NoImpliedEvalCheck(),
    "@ArkTS-eslint/prefer-includes-check": (): BaseChecker => new PreferIncludesCheck(),

    "@performance/array-definition-check": (): BaseChecker => new ArrayDefinitionCheck(),
    "@performance/avoid-empty-callback-check": (): BaseChecker => new AvoidEmptyCallbackCheck(),
    "@performance/avoid-update-auto-state-var-in-aboutToReuse-check": (): BaseChecker => new AvoidUpdateAutoStateVarAboutToReuseCheck(),
    "@performance/constant-property-referencing-check-in-loops": (): BaseChecker => new ConstantPropertyReferencingInLoopsCheck(),
    "@performance/effectkit-blur-check": (): BaseChecker => new EffectkitBlurCheck(),
    "@performance/foreach-args-check": (): BaseChecker => new ForeachArgsCheck(),
    "@performance/foreach-index-check": (): BaseChecker => new ForeachIndexCheck(),
    "@performance/layout-properties-scale-check": (): BaseChecker => new LayoutPropertiesScaleCheck(),
    "@performance/remove-redundant-state-var-check": (): BaseChecker => new RemoveRedundantStateVarCheck(),
    "@performance/timezone-interface-check": (): BaseChecker => new TimezoneInterfaceCheck(),
    "@performance/typed-array-check": (): BaseChecker => new TypedArrayCheck(),
    "@performance/use-object-link-to-replace-prop-check": (): BaseChecker => new UseObjectLinkToReplacePropCheck(),
    "@performance/web-cache-mode-check": (): BaseChecker => new WebCacheModeCheck(),
    "@performance/web-on-active-check": (): BaseChecker => new WebOnActiveCheck(),
    "@performance/sparse-array-check": (): BaseChecker => new SparseArrayCheck(),
    "@performance/waterflow-data-preload-check": (): BaseChecker => new WaterFlowUpdateDataCheck(),
    "@performance/union-type-array-check": (): BaseChecker => new UnionTypeArrayCheck(),
    "@performance/optional-parameters-check": (): BaseChecker => new OptionalParametersCheck(),
    "@performance/use-grid-layout-options-check": (): BaseChecker => new UseGridLayoutOptionsCheck(),
    "@performance/remove-unchanged-state-var-check": (): BaseChecker => new RemoveUnchangedStateVarCheck(),
    "@performance/js-code-cache-by-precompile-check": (): BaseChecker => new JsCodeCacheByPrecompileCheck(),
    "@performance/js-code-cache-by-interception-check": (): BaseChecker => new JsCodeCacheByInterceptionCheck(),
    "@correctness/image-interpolation-check": (): BaseChecker => new ImageInterpolationCheck(),
    "@correctness/image-pixel-format-check": (): BaseChecker => new ImagePixelFormatCheck(),
    "@performance/gif-hardware-decoding-check": (): BaseChecker => new GifHardwareDecodingCheck(),
    "@performance/cache-avplayer-check": (): BaseChecker => new CacheAvplayerCheck(),
    "@performance/color-overlay-effect-check": (): BaseChecker => new ColorOverlayEffectCheck(),
    "@performance/combine-same-arg-animateto-check": (): BaseChecker => new CombineSameArgAnimatetoCheck(),
    "@performance/constant-check": (): BaseChecker => new ConstantCheck(),
    "@performance/limit-refresh-scope-check": (): BaseChecker => new LimitRefreshScopeCheck(),
    "@performance/load-on-demand-check": (): BaseChecker => new LoadOnDemandCheck(),
    "@performance/no-state-var-access-in-loop-check": (): BaseChecker => new NoStateVarAccessInLoopCheck(),
    "@performance/no-use-any-export-current-check": (): BaseChecker => new NoUseAnyExportCurrentCheck(),
    "@performance/no-use-any-export-other-check": (): BaseChecker => new NoUseAnyExportOtherCheck(),
    "@performance/remove-container-without-property-check": (): BaseChecker => new RemoveContainerWithoutPropertyCheck(),
    "@performance/replace-nested-reusable-component-by-builder-check": (): BaseChecker => new ReplaceNestedReusableComponentByBuilderCheck(),
    "@performance/suggest-reuseid-for-if-else-reusable-component-check": (): BaseChecker => new SuggestReuseidForIfElseReusableComponentCheck(),
    "@performance/use-attribute-updater-control-refresh-scope-check": (): BaseChecker => new UseAttributeUpdaterControlRefreshScopeCheck(),
    "@performance/web-resource-for-image-component-check": (): BaseChecker => new WebResourceForImageComponentCheck(),
    "@performance/module-top-level-code-check": (): BaseChecker => new ModuleTopLevelCodeCheck(),
    "@performance/no-high-loaded-frame-rate-range": (): BaseChecker => new NoHighLoadedFrameRateRangeCheck(),
    "@performance/lower-app-brightness-check": (): BaseChecker => new LowerAppBrightnessCheck(),
    "@performance/stream-usage-api-check": (): BaseChecker => new StreamUsageApiCheck(),
    "@performance/avoid-memory-leak-in-animator": (): BaseChecker => new AvoidMemoryLeakInAnimator(),
    "@performance/avoid-memory-leak-in-displaysync": (): BaseChecker => new AvoidMemoryLeakInDisplaysync(),
    "@performance/no-use-any-import": (): BaseChecker => new NoUseAnyImportCheck(),
    "@performance/avoid-overusing-custom-component-check": (): BaseChecker => new AvoidOverusingCustomComponentCheck(),
    "@performance/bad-deep-clone-check": (): BaseChecker => new BadDeepCloneCheck(),
    "@performance/reasonable-sensor-use-check": (): BaseChecker => new ReasonableSensorUseCheck(),
    "@performance/reasonable-gps-use-check": (): BaseChecker => new ReasonableGpsUseCheck(),
    "@performance/avoid-object-alloc-in-build": (): BaseChecker => new AvoidObjectAllocInBuild(),
    "@performance/ineffective-layoutweight-check": (): BaseChecker => new IneffectiveLayoutWeightCheck(),
    "@performance/crypto-replacement-check": (): BaseChecker => new CryptoReplacementCheck(),
    "@performance/optional-condition-chaining-check": (): BaseChecker => new OptionalConditionChainingCheck(),
    "@performance/reuse-date-instances-check": (): BaseChecker => new ReuseDateInstancesCheck(),
    "@performance/web-response-data-type-check": (): BaseChecker => new WebResponseDataTypeCheck(),
    "@performance/stack-component-nesting-check": (): BaseChecker => new StackComponentNestingCheck(),
    "@performance/av-playback-state-check": (): BaseChecker => new AVPlayBackStateCheck(),
    "@performance/nested-post-frame-callback-check": (): BaseChecker => new NestedPostFrameCallbackCheck(),
    "@performance/on-page-hide-release-check": (): BaseChecker => new OnPageHideReleaseCheck(),
    "@performance/use-comprise-optimiz-check": (): BaseChecker => new UseCompriseOptimizeCheck(),
    "@performance/custom-component-check": (): BaseChecker => new CustomComponentCheck(),
    "@performance/no-regex-in-loop-check": (): BaseChecker => new NoRegexInLoopCheck(),
    "@performance/bad-lottie-opacity-check": (): BaseChecker => new BadLottieOpacityCheck(),
    "@performance/foreach-nested-in-lazy-foreach-check": (): BaseChecker => new ForeachNestedInLazyForeachCheck(),
    "@performance/component-count-check": (): BaseChecker => new ComponentCountCheck(),
    "@performance/component-tree-layers-check": (): BaseChecker => new ComponentTreeLayersCheck(),
    "@performance/component-degree-check": (): BaseChecker => new ComponentDegreeCheck(),
    "@performance/component-attributes-check": (): BaseChecker => new ComponentAttributesCheck(),
    "@performance/tabs-on-change-check": (): TabsOnChangeCheck => new TabsOnChangeCheck(),
    "@performance/update-state-var-between-animatetos-check": (): BaseChecker => new UpdateStateVarBetweenAnimateTosCheck(),
    "@security/no-unsafe-aes": (): BaseChecker => new NoUnsafeAesCheck(),
    "@security/no-unsafe-dh": (): BaseChecker => new NoUnsafeDhCheck(),
    "@security/no-unsafe-dh-key": (): BaseChecker => new NoUnsafeDhKeyCheck(),
    "@security/no-unsafe-dsa": (): BaseChecker => new NoUnsafeDsaCheck(),
    "@security/no-unsafe-dsa-key": (): BaseChecker => new NoUnsafeDsaKeyCheck(),
    "@security/no-unsafe-ecdsa": (): BaseChecker => new NoUnsafeEcdsaCheck(),
    "@security/no-unsafe-hash": (): BaseChecker => new NoUnsafeHashCheck(),
    "@security/no-unsafe-mac": (): BaseChecker => new NoUnsafeMacCheck(),
    "@security/no-unsafe-rsa-encrypt": (): BaseChecker => new NoUnsafeRsaEncryptCheck(),
    "@security/no-unsafe-rsa-key": (): BaseChecker => new NoUnsafeRsaKeyCheck(),
    "@security/no-unsafe-rsa-sign": (): BaseChecker => new NoUnsafeRsaSignCheck(),
    "@security/no-unsafe-huks": (): BaseChecker => new NoUnsafeHUksCheck(),
    "@security/no-unsafe-kdf": (): BaseChecker => new NoUnsafeKdfCheck(),
    "@security/no-unsafe-sm4": (): BaseChecker => new NoUnsafeSm4Check(),
    "@security/no-unsafe-ecdh": (): BaseChecker => new NoUnsafeEcdhCheck(),
    "@security/no-unsafe-sm2-key": (): BaseChecker => new NoUnsafeSm2KeyCheck(),
    "@security/no-unsafe-sm2-cipher": (): BaseChecker => new NoUnsafeSm2CipherCheck(),
    "@cross-device-app-dev/one-multi-breakpoint-check": (): BaseChecker => new OneMultiBreakpointCheck(),
    "@cross-device-app-dev/window-size-change-listener-check": (): WindowSizeChangeListenerCheck => new WindowSizeChangeListenerCheck(),
    "@correctness/avoid-inspector-interface-check": (): BaseChecker => new AvoidInspectorInterfaceCheck(),
    "@correctness/camera-calling-sequence-async-check": (): BaseChecker => new CameraCallingSequenceAsyncCheck(),
    "@correctness/bad-callbacks-in-camera-on": (): BaseChecker => new BadCallbacksInCameraOn(),
    "@correctness/keep-addinput-before-addoutput": (): BaseChecker => new KeepAddInputBeforeAddOutput(),
    "@correctness/camera-input-open-check": (): BaseChecker => new CameraInputOpenCheck(),
    "@correctness/bad-usage-in-uiability-lifecycle": (): BaseChecker => new BadUsageInUiabilityLifecycle(),
    "@correctness/customdialog-not-assign-value-check": (): BaseChecker => new CustomdialogNotAssignValueCheck(),

    // DSL
    "@ArkTS-eslint/init-declarations-check-dsl": (): BaseChecker => adapter.loadDslRule(InitDeclarationsDsl),
    "@ArkTS-eslint/no-dupe-class-members-check-dsl": (): BaseChecker => adapter.loadDslRule(NoDupeClassMembersDsl),
    "@ArkTS-eslint/consistent-indexed-object-style-check-dsl": (): BaseChecker => adapter.loadDslRule(ConsistentIndexedObjectStyleDsl),
    "@ArkTS-eslint/no-cond-assign-check-dsl": (): BaseChecker => adapter.loadDslRule(NoCondAssignDsl),
    "@ArkTS-eslint/ban-types-check-dsl": (): BaseChecker => adapter.loadDslRule(BanTypesDsl),
    "@ArkTS-eslint/no-for-in-array-check-dsl": (): BaseChecker => adapter.loadDslRule(NoForInArrayCheckDsl),
    "@ArkTS-eslint/no-key-generator-in-foreach-dsl": (): BaseChecker => adapter.loadDslRule(NoKeyGeneratorInForEach),
    "@ArkTS-eslint/console-within-high-frequency-func-dsl": (): BaseChecker => adapter.loadDslRule(ConsoleWithinHighFrequencyFunc),
    "@ArkTS-eslint/array-type-check-dsl": (): BaseChecker => adapter.loadDslRule(ArrayTypeCheckDSL),
    "@ArkTS-eslint/module-top-level-code-check-dsl": (): BaseChecker => adapter.loadDslRule(ModuleTopLevelCodeCheckDSL),
    "@ArkTS-eslint/func-call-spacing-check-dsl": (): BaseChecker => adapter.loadDslRule(FuncCallSpacingCheckDSL),
    "@ArkTS-eslint/max-classes-per-file-check-dsl": (): BaseChecker => adapter.loadDslRule(MaxClassesPerFileCheckDSL),
    "@ArkTS-eslint/no-array-constructor-check-dsl": (): BaseChecker => adapter.loadDslRule(NoArrayConstructorCheckDSL),
    "@ArkTS-eslint/no-useless-catch-check-dsl": (): BaseChecker => adapter.loadDslRule(NoUselessCatchCheckDSL),
    "@ArkTS-eslint/prefer-enum-initializers-check-dsl": (): BaseChecker => adapter.loadDslRule(PreferEnumInitializwersCheckDSL),
    "@ArkTS-eslint/condition-and-loop-curly-check": (): BaseChecker => adapter.loadDslRule(ConditionAndLoopCurlyCheckDsl),
    "@ArkTS-eslint/switch-break-check": (): BaseChecker => adapter.loadDslRule(SwitchBreakCheckDsl),
    "@ArkTS-eslint/max-callback-depth-check": (): BaseChecker => adapter.loadDslRule(MaxCallbackDepthCheckDsl),
    "@ArkTS-eslint/no-non-null-assertion-check-dsl": (): BaseChecker => adapter.loadDslRule(NoNonNullAssertionCheckDsl),
    "@ArkTS-eslint/default-case-check-dsl": (): BaseChecker => adapter.loadDslRule(DefaultCaseCheckDsl),
    "@ArkTS-eslint/default-case-last-check-dsl": (): BaseChecker => adapter.loadDslRule(DefaultCaseLastCheckDsl),
    "@ArkTS-eslint/use-isnan-binary-expression-check": (): BaseChecker => adapter.loadDslRule(UseIsNaNBinaryExpressionCheckDsl),
    "@ArkTS-eslint/use-isnan-switch-statement-check": (): BaseChecker => adapter.loadDslRule(UseIsNaNSwitchStatementCheckDsl),
    "@ArkTS-eslint/use-isnan-call-expression-check": (): BaseChecker => adapter.loadDslRule(UseIsNaNCallExpressionCheckDsl),
    "@ArkTS-eslint/consistent-type-imports-import-declaration-check": (): BaseChecker => adapter.loadDslRule(ConsistentTypeImportsImportDeclarationCheckDsl),
    "@ArkTS-eslint/consistent-type-imports-variable-statement-check": (): BaseChecker => adapter.loadDslRule(ConsistentTypeImportsVariableStatementCheckDsl),
    "@ArkTS-eslint/consistent-type-imports-type-alias-declaration-check": (): BaseChecker => adapter.loadDslRule(ConsistentTypeImportsTypeAliasDeclarationCheckDsl),
    "@ArkTS-eslint/no-case-declarations-check-dsl": (): BaseChecker => adapter.loadDslRule(NoCaseDeclarationsCheckDsl),
    "@ArkTS-eslint/no-this-alias-check-dsl": (): BaseChecker => adapter.loadDslRule(NoThisAliasCheckDsl),
    "@ArkTS-eslint/prefer-as-const-dsl-check": (): BaseChecker => adapter.loadDslRule(PreferAsConstCheckDSL),
    "@ArkTS-eslint/space-before-function-paren-dsl-check": (): BaseChecker => adapter.loadDslRule(SpaceBeforeFunctionParenCheckDSL),
    "@ArkTS-eslint/file-name-convention-check": (): BaseChecker => adapter.loadDslRule(FileNamingConventionCheckDsl),
    "@ArkTS-eslint/no-misused-new-check-dsl": (): BaseChecker => adapter.loadDslRule(NoMisusedNewCheckDsl),
    "@ArkTS-eslint/path-traversl": (): BaseChecker => adapter.loadDslRule(PathTraversalDsl),
    "@ArkTS-eslint/hardcoded-password": (): BaseChecker => adapter.loadDslRule(HardcodedPasswordDsl),
    "@ArkTS-eslint/insecure-random": (): BaseChecker => adapter.loadDslRule(InsecureRandomDsl),
    "@ArkTS-eslint/sensitive-storage": (): BaseChecker => adapter.loadDslRule(SensitiveStorageDsl),
    "@ArkTS-eslint/logging-sensitive-info": (): BaseChecker => adapter.loadDslRule(LoggingSensitiveInfoDsl),
    "@ArkTS-eslint/no-unsafe-mac": (): BaseChecker => adapter.loadDslRule(NoUnsafeMacDsl),
    "@ArkTS-eslint/unrestricted-file-upload": (): BaseChecker => adapter.loadDslRule(UnrestrictedFileUploadDsl),
    "@ArkTS-eslint/no-ssrf": (): BaseChecker => adapter.loadDslRule(NoSSRFDsl),
    "@ArkTS-eslint/no-unsafe-authentication-dsl": (): BaseChecker => adapter.loadDslRule(NoUnsafeAuthenticationDsl),
    "@ArkTS-eslint/max-depth-check-dsl": (): BaseChecker => adapter.loadDslRule(MaxDepthDsl),
    "@ArkTS-eslint/eqeqeq-check-dsl": (): BaseChecker => adapter.loadDslRule(EqeqeqDsl),
    "@ArkTS-eslint/no-array-constructor-ts-check-dsl": (): BaseChecker => adapter.loadDslRule(NoArrayConstructorTSDsl),
    "@ArkTS-eslint/typedef-check-dsl": (): BaseChecker => adapter.loadDslRule(TypedefDsl),
    "@ArkTS-eslint/no-control-regex-check-dsl": (): BaseChecker => adapter.loadDslRule(NoControlRegexDsl),
    "@ArkTS-eslint/adjacent-overload-signatures-check-dsl": (): BaseChecker => adapter.loadDslRule(AdjacentOverloadSignatureDsl),
    "@ArkTS-eslint/class-literal-property-style-check-dsl": (): BaseChecker => adapter.loadDslRule(ClassLiteralPropertyStyleDsl),
    "@ArkTS-eslint/no-confusing-non-null-assertion-check-dsl": (): BaseChecker => adapter.loadDslRule(NoConfusingNonNullAssertionDsl),
    "@ArkTS-eslint/explicit-member-accessibility-check-dsl": (): BaseChecker => adapter.loadDslRule(ExplicitMemberAccessibilityDsl),
    "@ArkTS-eslint/no-useless-comment": (): BaseChecker => adapter.loadDslRule(NoUselessCommentCheckDsl),
    "@ArkTS-eslint/no-null-access-dsl": (): BaseChecker => adapter.loadDslRule(NoNullAccessDsl),
    "@ArkTS-eslint/await-thenable-check-dsl": (): BaseChecker => adapter.loadDslRule(AwaitThenableCheckDsl),
    "@ArkTS-eslint/mandatory-default-value-for-local-initialization-dsl": (): BaseChecker => adapter.loadDslRule(MandatoryDefaultValueForLocalInitializationDsl),
    "@performance/constant-property-referencing-inLoops-check-dsl": (): BaseChecker => adapter.loadDslRule(ConstantPropertyReferencingInLoopsCheckDsl),
    "@performance/image-sync-load-check-dsl": (): BaseChecker => adapter.loadDslRule(ImageSyncLoadCheckDsl),
    "@performance/combine-same-arg-animateto-check-dsl": (): BaseChecker => adapter.loadDslRule(CombineSameArgAnimatetoCheckDsl),
    "@performance/number-init-check-dsl": (): BaseChecker => adapter.loadDslRule(NumberInitCheckDsl),
    "@performance/lazy-for-each-dsl": (): BaseChecker => adapter.loadDslRule(LazyForEachDsl),
    "@performance/function-variable-dsl": (): BaseChecker => adapter.loadDslRule(FunctionVariableDsl),
    "@performance/array-definition-check-dsl": (): BaseChecker => adapter.loadDslRule(ArrayDefinitionCheckDsl),
    "@performance/no-function-in-loop-dsl": ():BaseChecker => adapter.loadDslRule(NoFunctionInLoopDsl),
    "@ArkTS-eslint/no-any-dsl": (): BaseChecker => adapter.loadDslRule(NoAnyDsl),
    "@ArkTS-eslint/should-handle-error": (): BaseChecker => adapter.loadDslRule(ShouldHandleErrorDsl),
    "@ArkTS-eslint/should-initialize-const": (): BaseChecker => adapter.loadDslRule(NoConstModifyDsl),
    "@ArkTS-eslint/no-with-statement": (): BaseChecker => adapter.loadDslRule(NoWithStatementDsl),
    "@ArkTS-eslint/no-null-in-push": (): BaseChecker => adapter.loadDslRule(NoNullInPushDsl),
    "@ArkTS-eslint/no-console-at-top": (): BaseChecker => adapter.loadDslRule(NoConsoleAtTopDsl),
    "@ArkTS-eslint/no-duplicate-import": (): BaseChecker => adapter.loadDslRule(NoDuplicateImportDsl),
    "@ArkTS-eslint/no-empty-branch": (): BaseChecker => adapter.loadDslRule(NoEmptyBranchDsl),
    "@ArkTS-eslint/no-param-reassign": (): BaseChecker => adapter.loadDslRule(NoParamReassignDsl),
    "@ArkTS-eslint/no-none-bool-condition": (): BaseChecker => adapter.loadDslRule(NoNoneBoolConditionDsl),
    "@ArkTS-eslint/no-eval": (): BaseChecker => adapter.loadDslRule(NoEvalDsl),
    "@ArkTS-eslint/no-duplicate-class-property": (): BaseChecker => adapter.loadDslRule(NoDuplicateClassPropertyDsl),
    "@ArkTS-eslint/no-top-level-var": (): BaseChecker => adapter.loadDslRule(NoTopLevelVarDsl),
    "@ArkTS-eslint/no-magic-number": (): BaseChecker => adapter.loadDslRule(NoMagicNumberDsl),
    "@ArkTS-eslint/no-namespace-import": (): BaseChecker => adapter.loadDslRule(NoNamespaceImportDsl),
    "@ArkTS-eslint/no-undeclared-var": (): BaseChecker => adapter.loadDslRule(NoUndeclaredVarDsl),
    "@ArkTS-eslint/no-path-concat": (): BaseChecker => adapter.loadDslRule(NoPathConcatDsl),
    "@ArkTS-eslint/no-empty-finally": (): BaseChecker => adapter.loadDslRule(NoEmptyFinallyDsl),
    "@ArkTS-eslint/no-new-function": (): BaseChecker => adapter.loadDslRule(NoNewFunctionDsl),
    "@ArkTS-eslint/no-await-in-loop": (): BaseChecker => adapter.loadDslRule(NoAwaitInLoopDsl),
    "@ArkTS-eslint/no-assignment-in-condition": (): BaseChecker => adapter.loadDslRule(NoAssignmentInCondition),
    "@ArkTS-eslint/no-set-timeout": (): BaseChecker => adapter.loadDslRule(NoSetTimeOutStringDsl),
    "@ArkTS-eslint/no-multiple-blank-lines": (): BaseChecker => adapter.loadDslRule(NoMultipleBlankLinesDsl),
    "@ArkTS-eslint/no-excessive-single-line-comments": (): BaseChecker => adapter.loadDslRule(NoExcessiveSingleLineCommentsDsl),
    "@ArkTS-eslint/no-math-random-in-loop": (): BaseChecker => adapter.loadDslRule(NoMathRandomInLoopDsl),
    "@ArkTS-eslint/no-magic-string": (): BaseChecker => adapter.loadDslRule(NoMagicStringDsl),
    "@ArkTS-eslint/no-sensitive-method-name": (): BaseChecker => adapter.loadDslRule(NoSensitiveMethodNameDsl),
    "@ArkTS-eslint/no-sensitive-property-name": (): BaseChecker => adapter.loadDslRule(NoSensitivePropertyNameDsl),
    "@ArkTS-eslint/no-sensitive-class-name": (): BaseChecker => adapter.loadDslRule(NoSensitiveClassNameDsl),
    "@ArkTS-eslint/no-unsafe-inner-html": (): BaseChecker => adapter.loadDslRule(NoUnsafeInnerHtmlDsl),
    "@ArkTS-eslint/no-assignment-in-logical": (): BaseChecker => adapter.loadDslRule(NoUnsafeInnerHtmlDsl),
    "@ArkTS-eslint/no-unused-variable": (): BaseChecker => adapter.loadDslRule(NoUnusedVariableDsl),
    "@ArkTS-eslint/no-dynamic-reg-exp": (): BaseChecker => adapter.loadDslRule(NoDynamicRegExpDsl),
    "@ArkTS-eslint/no-untrusted-json-parse": (): BaseChecker => adapter.loadDslRule(NoUntrustedJsonParseDsl),
    "@ArkTS-eslint/no-set-interval-string": (): BaseChecker => adapter.loadDslRule(NoSetIntervalStringDsl),
    "@ArkTS-eslint/no-document-write": (): BaseChecker => adapter.loadDslRule(NoDocumentWriteDsl),
    "@ArkTS-eslint/no-async-promise-executor": (): BaseChecker => adapter.loadDslRule(NoAsyncPromiseExecutorCheckDsl),

};


export const projectRules = {
    '@correctness/audio-interrupt-check': (): BaseChecker => new AudioInterruptCheck(),
    '@performance/start-window-icon-check': (): BaseChecker => new StartWindowIconCheck(),
    '@correctness/audio-pause-or-mute-check': (): BaseChecker => new AudioPauseOrMuteCheck(),
    "@correctness/avsession-buttons-check": (): BaseChecker => new AvsessionButtonsCheck(),
    "@correctness/avsession-metadata-check": (): BaseChecker => new AvsessionMetadataCheck(),
    "@security/specified-interface-call-chain-check": (): BaseChecker => new SymbolUsageCheck(),
    "@performance/number-init-check": (): BaseChecker => new NumberInitCheck(),
    "@performance/image-sync-load-check": (): BaseChecker => new ImageSyncLoadCheck(),
    "@performance/list-init-check": (): BaseChecker => new ListInitCheck(),
    "@performance/high-frequency-log-check": (): BaseChecker => new HighFrequencyLogCheck(),
    "@performance/lottie-animation-destroy-check": (): BaseChecker => new LottieAnimationDestoryCheck(),
    "@performance/multiple-associations-state-var-check": (): BaseChecker => new MultipleAssociationsStateVarCheck(),
    "@performance/set-cached-count-for-lazyforeach-check": (): BaseChecker => new SetCachedCountForLazyforeachCheck(),
    "@performance/homepage-prepare-load-check": (): BaseChecker => new HomepagePrepareLoadCheck(),
    "@performance/image-format-check": (): BaseChecker => new ImageFormatCheck(),
    "@performance/image-size-check": (): BaseChecker => new ImageSizeCheck(),
    "@performance/page-prefetch-check": (): BaseChecker => new PagePrefetchCheck(),
    "@performance/resources-file-check": (): BaseChecker => new ResourcesFileCheck(),
    "@performance/dark-color-mode-check": (): BaseChecker => new DarkColorModeCheck(),
    "@security/no-cycle-check": (): BaseChecker => new NoCycleCheck(),
    "@performance/image-adaptive-color-mode-check": (): BaseChecker => new ImageAdaptiveColorModeCheck(),
    "@performance/global-var-update-check": (): BaseChecker => new GlobalVarUpdateCheck(),
    "@performance/global-var-update-async-check": (): BaseChecker => new GlobalVarUpdateAsyncCheck(),
    "@performance/reasonable-audio-use-check": (): BaseChecker => new ReasonableAudioUseCheck(),
    "@performance/lazy-string-check-in-log": (): BaseChecker => new LazyStringCheckInLog(),
    "@performance/invalid-property-check": (): BaseChecker => new InvalidPropertyCheck(),
    "@performance/use-reusable-component-check": (): BaseChecker => new UseReusableComponentCheck(),
    "@performance/monitor-invisible-area-in-image-animation": (): BaseChecker => new MonitorInvisibleAreaInImageAnimation(),
    "@performance/avoid-constant-expression-in-build": (): BaseChecker => new AvoidConstantExpressionInBuild(),
    "@performance/datashare-query-unrelease-check": (): BaseChecker => new DataShareQueryUnReleaseCheck(),
    "@performance/bad-parameter-passing-check": (): BaseChecker => new BadParameterPassingCheck(),
    "@correctness/avoid-animation-in-lifecycle": (): BaseChecker => new AvoidAnimationInLifecycle(),
    "@correctness/callback-release-properly-check": (): BaseChecker => new CallbackReleaseProperlyCheck(),
    "@performance/set-list-size-in-scroll-check": (): BaseChecker => new SetListSizeInScrollCheck(),
    "@performance/avoid-nested-layoutWeight-check": (): BaseChecker => new AvoidNestedLayoutweightCheck
};


// 新增文件级的checker，需要在此处注册
export const file2CheckRuleMap: Map<string, any> = new Map(Object.entries(fileRules));
// 新增项目级checker，需要在此处注册
export const project2CheckRuleMap: Map<string, any> = new Map(Object.entries(projectRules));

export class ProxyChecker {
    static getClass(ruleId: string) {
        const checker = file2CheckRuleMap.get(ruleId) ?? project2CheckRuleMap.get(ruleId);
        if (!checker) {
            logger.error(`${ruleId} is not matched to any checker`);
            return null;
        }
        return checker();
    }
}